package com.wkky.mechanismscreenings.entity;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.baomidou.mybatisplus.annotation.*;
import com.wkky.mechanismscreenings.common.DateConverter;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 五矿矿业从业人员名单 
 * @TableName staff
 */
@TableName(value ="staff")
public class Staff implements Serializable {
    /**
     * ID
     */

    @TableId(type = IdType.ASSIGN_UUID)
    @ExcelIgnore
    private String id;
    /**
     * 序号
     */
    @ExcelProperty("序号")
    private String sequence;


    /**
     * 员工编号
     */
    @ExcelProperty("员工编号")
    /*@ColumnWidth(20)*/
    private String staffNum;

    /**
     * 员工姓名
     */
    @ExcelProperty("姓名")
    private String name;

    /**
     * 性别
     */
    @ExcelProperty("性别")
    private String gender;

    /**
     * 单位、部门
     */
    @ExcelProperty("单位、部门")
    private String department;

    /**
     * 职位
     */
    @ExcelProperty("职位")
    private String job;

    /**
     * 职务
     */
    @ExcelProperty("职务")
    private String position;

    /**
     * 出生日期，yyyy-MM-dd
     */
    @ExcelProperty(value = "出生日期",converter = DateConverter.class)
    private Date birthday;

    /**
     * 政治面貌
     */
    @ExcelProperty("政治面貌")
    private String politicalStatus;

    /**
     * 参工时间
     */
    @ExcelProperty(value = "参工时间",converter = DateConverter.class)
    private Date workStartTime;

    /**
     * 职称名称
     */
    @ExcelProperty("职称名称")
    private String professionalTitle;

    /**
     * 最高学历
     */
    @ExcelProperty("最高学历")
    private String highestEducation;

    /**
     * 备注
     */
    @ExcelProperty("备注")
    private String remarks;

    @ExcelProperty("单位简称")
    private String organization;

    /**
     * 逻辑删除 0未删除/1已删除
     */
    @TableField(fill = FieldFill.INSERT)
    @ExcelIgnore
    private Integer delFlag;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    @ExcelIgnore
    private LocalDateTime createdTime;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ExcelIgnore
    private LocalDateTime updatedTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 959077896872731442L;

    /**
     * ID
     */
    public String getId() {
        return id;
    }

    /**
     * ID
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 序号
     *
     */
    public String getSequence() {
        return sequence;
    }

    public void setSequence(String sequence) {
        this.sequence = sequence;
    }

    /**
     * 员工编号
     */
    public String getStaffNum() {
        return staffNum;
    }

    /**
     * 员工编号
     */
    public void setStaffNum(String staffNum) {
        this.staffNum = staffNum;
    }

    /**
     * 员工姓名
     */
    public String getName() {
        return name;
    }

    /**
     * 员工姓名
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 性别
     */
    public String getGender() {
        return gender;
    }

    /**
     * 性别
     */
    public void setGender(String gender) {
        this.gender = gender;
    }

    /**
     * 单位、部门
     */
    public String getDepartment() {
        return department;
    }

    /**
     * 单位、部门
     */
    public void setDepartment(String department) {
        this.department = department;
    }

    /**
     * 职位
     */
    public String getJob() {
        return job;
    }

    /**
     * 职位
     */
    public void setJob(String job) {
        this.job = job;
    }

    /**
     * 职务
     */
    public String getPosition() {
        return position;
    }

    /**
     * 职务
     */
    public void setPosition(String position) {
        this.position = position;
    }

    /**
     * 出生日期，yyyy-MM-dd
     */
    public Date getBirthday() {
        return birthday;
    }

    /**
     * 出生日期，yyyy-MM-dd
     */
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    /**
     * 政治面貌
     */
    public String getPoliticalStatus() {
        return politicalStatus;
    }

    /**
     * 政治面貌
     */
    public void setPoliticalStatus(String politicalStatus) {
        this.politicalStatus = politicalStatus;
    }

    /**
     * 参工时间
     */
    public Date getWorkStartTime() {
        return workStartTime;
    }

    /**
     * 参工时间
     */
    public void setWorkStartTime(Date workStartTime) {
        this.workStartTime = workStartTime;
    }

    /**
     * 职称名称
     */
    public String getProfessionalTitle() {
        return professionalTitle;
    }

    /**
     * 职称名称
     */
    public void setProfessionalTitle(String professionalTitle) {
        this.professionalTitle = professionalTitle;
    }

    /**
     * 最高学历
     */
    public String getHighestEducation() {
        return highestEducation;
    }

    /**
     * 最高学历
     */
    public void setHighestEducation(String highestEducation) {
        this.highestEducation = highestEducation;
    }

    /**
     * 备注
     */
    public String getRemarks() {
        return remarks;
    }

    /**
     * 备注
     */
    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    /**
     * 单位简称
     */
    public String getOrganization(){return organization;}
    /**
     * 单位简称
     */
    public void setOrganization(String organization){this.organization = organization;}

    /**
     * 逻辑删除 0未删除/1已删除
     */
    public Integer getDelFlag() {
        return delFlag;
    }

    /**
     * 逻辑删除 0未删除/1已删除
     */
    public void setDelFlag(Integer delFlag) {
        this.delFlag = delFlag;
    }

    /**
     * 创建时间
     */
    public LocalDateTime getCreatedTime() {
        return createdTime;
    }

    /**
     * 创建时间
     */
    public void setCreatedTime(LocalDateTime createdTime) {
        this.createdTime = createdTime;
    }

    /**
     * 更新时间
     */
    public LocalDateTime getUpdatedTime() {
        return updatedTime;
    }

    /**
     * 更新时间
     */
    public void setUpdatedTime(LocalDateTime updatedTime) {
        this.updatedTime = updatedTime;
    }




    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", sequence=").append(sequence);
        sb.append(", staffNum=").append(staffNum);
        sb.append(", name=").append(name);
        sb.append(", gender=").append(gender);
        sb.append(", department=").append(department);
        sb.append(", job=").append(job);
        sb.append(", position=").append(position);
        sb.append(", birthday=").append(birthday);
        sb.append(", politicalStatus=").append(politicalStatus);
        sb.append(", workStartTime=").append(workStartTime);
        sb.append(", professionalTitle=").append(professionalTitle);
        sb.append(", highestEducation=").append(highestEducation);
        sb.append(", remarks=").append(remarks);
        sb.append(",organization").append(organization);
        sb.append(", delFlag=").append(delFlag);
        sb.append(", createdTime=").append(createdTime);
        sb.append(", updatedTime=").append(updatedTime);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}